Git Reset

प्रतिबद्ध इतिहास रीसेट करें और परिवर्तन प्रबंधित करें

Git रीसेट क्या करता है?

git resetकमांड आपकी वर्तमान शाखा (HEAD) को एक अलग कमिट पर ले जाता है।

प्राथमिकता के आधार पर, आप बदल सकते हैं कि कौन से परिवर्तन चरणबद्ध हैं या अपनी कार्यशील निर्देशिका से परिवर्तन हटा सकते हैं।

इसका उपयोग प्रतिबद्धताओं को पूर्ववत करने, फ़ाइलों को अस्थिर करने या अपने इतिहास को साफ़ करने के लिए करें।

Git रीसेट कमांड और विकल्पों का सारांश

git reset --soft <commit>

परिवर्तनों को प्रतिबद्ध करने और उन्हें चरणबद्ध बनाए रखने के लिए HEAD को स्थानांतरित करें

git reset --mixed <commit>

परिवर्तनों को प्रतिबद्ध करने और अस्थिर करने के लिए HEAD को ले जाएँ (डिफ़ॉल्ट)

git reset --hard <commit>

सभी परिवर्तनों को प्रतिबद्ध करने और त्यागने के लिए HEAD ले जाएँ

git reset <file>

किसी फ़ाइल को अनस्टेज करें

git log --oneline

प्रतिबद्ध इतिहास दिखाएँ

1

रीसेट करने के लिए कमिट कैसे खोजें

सबसे पहले, आपको वह कमिट ढूंढना होगा जिस पर आप वापस जाना चाहते हैं।

अपने प्रतिबद्ध इतिहास का सारांश देखनाgit log --onelineउपयोग:

पुलेख अध्याय के बाद, हमारे प्रतिबद्ध इतिहास का एक हिस्सा है जिस पर हम वापस जा सकते हैं।

आइए इसे रीसेट के साथ आज़माएँ।

सबसे पहले, हमें वह बिंदु ढूंढना होगा जिस पर हम लौटना चाहते हैं।

ऐसा करने के लिए, हमें लॉग पथ से गुजरना होगा।

बहुत लंबी लॉग सूची से बचने के लिए, हम--onelineहम विकल्प का उपयोग करने जा रहे हैं, जो प्रति कमिट केवल एक पंक्ति दिखाता है:

तो आइए वह बिंदु ढूंढें जिसे हम रीसेट करना चाहते हैं:

उदाहरण

git log --oneline
e56ba1f (HEAD -> master) Revert "Just a regular update, definitely no accidents here..."
52418f7 Just a regular update, definitely no accidents here...
9a9add8 (origin/master) Added .gitignore
81912ba Corrected spelling error
3fdaa5b Merge pull request #1 from jassifteam-test/update-readme
836e5bf (origin/update-readme, update-readme) Updated readme for GitHub Branches
daf4f7c (origin/html-skeleton, html-skeleton) Updated index.html with basic meta
facaeae (gh-page/master) Merge branch 'master' of https://github.com/jassifteam-test/hello-world
e7de78f Updated index.html. Resized image
5a04b6f Updated README.md with a line about focus
d29d69f Updated README.md with a line about GitHub
e0b6038 merged with hello-world-images after fixing conflicts
1f1584e added new image
dfa79db updated index.html with emergency fix
0312c55 Added image to Hello World
09f4acd Updated index.html with a new line
221ec6e First release of Hello World!

हम प्रतिबद्धता पर वापस लौटना चाहते हैं:9a9add8 (origin/master) Added .gitignore, इससे पहले कि हम चीजों को गड़बड़ाना शुरू करें, एक आखिरी बात।

2

Git Reset --soft

git reset --soft <commit>HEAD को निर्दिष्ट कमिट पर ले जाता है, लेकिन आपके सभी परिवर्तनों को चरणबद्ध (सूचकांक पर) रखता है।

यह उपयोगी है यदि आप कई कमिटों को एक साथ मर्ज करना चाहते हैं या इतिहास को फिर से लिखना चाहते हैं लेकिन अपने काम को कमिट-तैयार रखना चाहते हैं।

उदाहरण

git reset --soft 9a9add8

9a9add8उसके बाद अब सभी परिवर्तन चरणबद्ध हो गए हैं, एक नई प्रतिबद्धता के लिए तैयार हैं।

3

गिट रीसेट--मिश्रित (डिफ़ॉल्ट)

git reset --mixed <commit>(या बसgit reset <commit>) HEAD को निर्दिष्ट कमिट में ले जाता है और किसी भी परिवर्तन को अस्थिर करता है, लेकिन उन्हें आपकी कार्यशील निर्देशिका में रखता है।

यह डिफ़ॉल्ट विकल्प है और यदि आप किसी प्रतिबद्धता को "पूर्ववत" करना चाहते हैं, लेकिन संशोधन या पुनः प्रतिबद्धता के लिए अपने परिवर्तनों को रखना चाहते हैं तो यह उपयोगी है।

उदाहरण

git reset --mixed 9a9add8

9a9add8इसके बाद के सभी परिवर्तन अब चरणबद्ध नहीं हैं, लेकिन अभी भी आपकी फ़ाइलों में हैं।

4

Git Reset --hard

git reset --hard <commit>HEAD को निर्दिष्ट कमिट पर ले जाता है और आपकी सभी कार्यशील निर्देशिका और चरणबद्ध परिवर्तनों को त्याग देता है।

यह खतरनाक है और उन सभी परिवर्तनों को स्थायी रूप से हटा देता है जिन्हें आप निश्चित रूप से खोना चाहते हैं।

उदाहरण

git reset --hard 9a9add8

9a9add8उसके बाद के सभी परिवर्तन अब स्थायी रूप से हटा दिए गए हैं।

5

परिवर्तनों की समीक्षा करें

Git Reset , .

उदाहरण

git status
On branch master
Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
  (use "git pull" to update your local branch)

nothing to commit, working tree clean

युक्तियाँ एवं सर्वोत्तम प्रथाएँ

1

सावधानी के साथ प्रयोग करें

Git Reset- , .

2

टीम से संपर्क करें

किसी दूरस्थ रिपॉजिटरी में परिवर्तन करने से पहले अपनी टीम से जाँच करें।

3

रिमोट को मत दबाओ

रीसेट के बाद पहले से साझा किए गए कमिट को रिमोट रिपॉजिटरी में न धकेलें।

4

--कठिन से बचें

जब भी संभव हो हार्ड रीसेट से बचें, क्योंकि इससे परिवर्तन स्थायी रूप से हट जाएंगे।

चेतावनियाँ

⚠️महत्वपूर्ण चेतावनी

Git Reset- , .

सुनिश्चित करें कि इसका उपयोग केवल आवश्यक होने पर ही करें।

त्वरित संदर्भ

--soft

परिवर्तनों को चरणबद्ध रखें

git reset --soft

--mixed

परिवर्तनों को अस्थिर करें

git reset --mixed

--hard

सभी परिवर्तन त्यागें

git reset --hard

इतिहास प्रतिबद्ध करें

प्रतिबद्धताओं की जाँच करें

git log --oneline